Numerous techniques and protocols exist for configuring networks to handle multicast traffic. For Internet Protocol (IP) and/or multiprotocol label switching (MPLS) implementations the existing solutions for multicast are based on multicast label distribution protocol (mLDP) or protocol independent multicast (PIM). These are all techniques that depend on a unicast shortest path first (SPF) computation followed by handshaking between peers to sort out a loop free multicast distribution tree (MDT) for each multicast source. At the same time numerous protocols exist that provide for unicast tunneling, and some (such as label based architectures like source packet routing in networking (SPRING) or MPLS-LDP) implement a full mesh of unicast tunnels as an artifact for normal operation.
SPB is a networking system for the configuration of computer networks that enables multipath routing. In one embodiment, the protocol is specified by the Institute of Electrical and Electronics Engineers (IEEE) 802.1aq standard. This networking system utilized a link state routing system as a replacement for prior standards such as spanning tree protocols. SPB enables all paths in the computing network to be active with multiple equal costs paths being utilized through load sharing and similar technologies. The standard enables the implementation of logical Ethernet networks in Ethernet infrastructures using a link state protocol to advertise the topology and logical network memberships of the nodes in the network. SPB implements large scale multicast as part of implementing virtualized broadcast domains.
Proposals have been made to use global identifiers in the dataplane combined with the IEEE 802.1aq technique of advertising multicast registrations in the interior gateway protocol (IGP) and using an “all pairs shortest path” computation to compute MDTs without the additional handshaking of existing multicast protocols.
SPRING is an exemplary profile of the use of MPLS technology whereby global identifiers are used in the form of a global label assigned to each label switched router (LSR) that is used for forwarding to that LSR. A full mesh of unicast tunnels is constructed via every node in the network computing the shortest path to every other node and installing the associated global labels accordingly. In the case of SPRING, this also allows explicit paths to be set up via the application of label stacks at the network ingress which specify the path that the packet should traverse expressed as a set of waypoints. Encompassed with this approach is the concept of a strict (every hop specified) or loose (some waypoints specified) route dependent on how exhaustively the ingress applied label stack specifies the path. SPRING, RSVP-TE and other technologies have a concept of loosely specified paths where only a portion of a path is specified and the network locally fills in the rest on the basis of local topology knowledge. It would be useful to have this capability for multicast trees.
mLDP and PIM do not have a facility to permit any engineering of multicast trees in that way points cannot be specified. Any resulting MDT simply follows the shortest path established by unicast convergence. RSVP-TE does have extensions that permit engineered trees to be specified, but this results in significant control plane traffic and state.
To combat some of these issues methods have been defined to implement engineered multicast forwarding. These methods utilize loosely specified trees. A loosely specified tree is one in which not every hop in the tree is specified, only some hops are specified as “way points.” This results in a tree being defined as a cascade of sub-trees where the location of the sub-tree roots has been specified or “pinned.” A sub-tree is a portion of the overall tree where an intermediate root and a set of leaves has been explicitly defined. As used herein a stage of an MDT refers to the set of sub-trees that are an equal number of cascaded subtrees from the root.
Pinning intermediate points in the MDTs where the hops are loose introduces some issues. The overall resulting tree cannot be guaranteed to be acyclic across topology changes. The resulting tree will not be optimal across topology changes. The result is that although it is desirable to be able to specify or ‘pin’ hops in a tree for engineering and traffic distribution purposes, it cannot be reliably done with a flat multicast tree with invariant identifiers if there is a combination of pinned points and computed portions of the MDT.
Methods have been introduced where unicast tunneling is used between a root, replication trees and leaves that implement each MDT to reduce the problems of loosely specified trees. However, these methods do not eliminate the possibility of acyclic trees in the presence of pinned waypoints as tunnel collisions such that they will not result in looping or duplication. However, a mix of pinned and computed trees may still present issues. In such a topology, changes in the topology may result in a single node resolving to being a replication tree for multiple sub trees of the overall tree. This can lead to problems in forwarding and congestion without a method of disambiguating the subtrees in the forwarding plane.